package com.flx.nio;

/**
 * @Author Fenglixiong
 * @Create 2021/3/23 1:15
 * @Description Nio--->New io
 * io===>输入输出流(流水一样)比如：byte字节
 * 文件包含磁盘的数据，网络的数据
 *
 * IO和NIO区别？
 * 1.IO是面向流的，NIO是面向缓冲区的
 * 2.IO是阻塞式IO，NIO是非阻塞式IO
 * 3.NIO有选择器
 *
 * 传统流就是建立文件和应用程序之间的管道进行数据传输，相当于水管
 * 传统的流是单向流，分为输入输出流 File------->App,App------->File
 *
 * Nio是建立文件到应用程序之间的通道，相当于铁路，而火车（buffer缓冲区）充当运输工具
 * Nio的流是双向流，因为缓冲区可以双向流动（双向运输） File<----->Buffer<----->App
 *
 * 传统的io是阻塞式的，读取不到数据就一直阻塞
 * Nio是非阻塞式的，读取不到数据可以处理其他任务
 *
 * 一般流程：
 * 1.先获取通道
 * 2.注册Selector
 * 3.分配缓冲区
 * 4.往缓冲区写数据
 * 5.结束
 **/
public class NioApi {

    /**
     * NIO的核心
     * 通道和缓冲区？
     *
     * 简而言之：Channel负责传输，Buffer负责存储
     *
     * 通道：表示打开到IO设备（例如文件、套接字）的连接
     * 缓冲区：一个用于特定基本数据类型的容器，容纳数据的地方
     *
     * NIO中的Buffer主要用于与通道进行交互，数据从通道中读入缓冲区，从缓冲区写入通道
     *
     * 若需要使用NIO系统，需要获取用于连接IO设备的通道以及容纳数据的缓冲区，然后操作缓冲区，对数据进行处理
     */

    /**
     * 缓冲区：
     *
     */

}
